package arsw.twitter.cliente;

import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

import arsw.twitter.common.IControllerRemote;
import arsw.twitter.view.VistaUsuario;

public class Cliente {
	public static void main(String[] args) {	
		if (args.length == 2) {
			String direccionIP = args[0];
			String usuario = args[1];
			IControllerRemote controladoRemoto = crearControlador(direccionIP);
			ProxyController proxy = ProxyController.newInstance(controladoRemoto);
			VistaUsuario.newInstance(usuario, proxy);
		}	
		else {
			System.err.println("Debe colocar como parametros el usuario y el servidor donde esta el controlador");
			System.exit(0);
		}
	}
	
		/**
		 * Obtiene un controlador Remoto publicado por un servidor
		 * @param direccionIP
		 * @return
		 */
		public static IControllerRemote crearControlador(String direccionIP){
			Registry registry;
			IControllerRemote controllerRemote = null;
			try {
				registry = LocateRegistry.getRegistry(direccionIP,2000);
				controllerRemote = (IControllerRemote) registry.lookup(IControllerRemote.ControllerBindName);
			} catch (RemoteException e) {
				e.printStackTrace();
			} catch (NotBoundException e) {
				e.printStackTrace();
			}
			return controllerRemote;
	}
	
}
